#ifndef SL_FRAMEINFO_HPP
#define SL_FRAMEINFO_HPP

// SFML Header
#include <SFML/System.hpp>

// Eigene Header
#include "../System/Operator.hpp"

namespace sl
{
	class FrameInfo : public Operator<FrameInfo>
	{
	public:
		FrameInfo();
		FrameInfo(unsigned int frame, unsigned int delay, const sf::Vector2i& offset = sf::Vector2i(0, 0));
		
	protected:
		unsigned int myFrame, myDelay;
		sf::Vector2i myOffset;

	public:
		FrameInfo* SetFrame(unsigned int frame);
		unsigned int GetFrame();
		FrameInfo* SetDelay(unsigned int delay);
		unsigned int GetDelay();
		FrameInfo* SetOffset(const sf::Vector2i& offset);
		sf::Vector2i GetOffset();

	public:
		friend std::ostream& operator<<(std::ostream& os, const FrameInfo& info);
		friend std::istream& operator>>(std::istream& is, FrameInfo& info);
	};
}

#endif //SL_FRAMEINFO_HPP